Mobility route optimization

ABSTRACT

A processor-implemented method, system, and/or computer program product guides mobility-impaired pedestrians. Mobile tracking readings are received from multiple mobility assistance devices, each of which has an affixed tracking device. Based on these mobile tracking readings, multiple pedestrian routes for mobility-impaired pedestrians, including an optimal pedestrian route that has the highest tracking history to a desired destination, are generated.

BACKGROUND

The present disclosure relates to the field of computers and tracking sensors, and specifically to the use of computers and tracking sensors in the field of pedestrian navigation. Still more particularly, the present disclosure relates to the use of computers and tracking sensors in providing suggested pedestrian routes to mobility-impaired users.

Accessibility to public facilities and buildings can often be challenging to pedestrians that are mobility-impaired. A mobility-impaired pedestrian is a person who has physical or other conditions that impede mobility. Such mobility-impaired persons experience unique challenges when traversing across unfamiliar landscapes to reach a desired destination.

SUMMARY

A processor-implemented method, system, and/or computer program product guides mobility-impaired pedestrians. Mobile tracking readings are received from multiple mobility assistance devices, each of which has an affixed tracking device. Based on these mobile tracking readings, multiple pedestrian routes for mobility-impaired pedestrians, including an optimal pedestrian route that has the highest tracking history to a desired destination, are generated.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 depicts an exemplary computer in which the present disclosure may be implemented;

FIG. 2 illustrates an exemplary mobile assistance device to which a tracking device is affixed;

FIG. 3 depicts multiple exemplary pedestrian routes generated by readings from tracking devices on multiple mobile assistance devices; and

FIG. 4 is a high-level flow-chart of one or more actions performed by a processor to direct a mobility-impaired pedestrian to an optimal pedestrian route to a desired destination.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

With reference now to the figures, and in particular to FIG. 1, there is depicted a block diagram of an exemplary computer 102, which may be utilized by the present invention. Note that some or all of the exemplary architecture, including both depicted hardware and software, shown for and within computer 102 may be utilized by software deploying server 150, tracking devices 152, Global Positioning System (GPS) devices 154, and/or mobile communication device 156 shown in FIG. 1, and/or local processing/transmitting system 202, tracking device 252, and/or GPS device 254 shown in FIG. 2.

Computer 102 includes a processing unit 104 that is coupled to a system bus 106. Processing unit 104 may utilize one or more processors, each of which has one or more processor cores. A video adapter 108, which drives/supports a display 110, is also coupled to system bus 106. System bus 106 is coupled via a bus bridge 112 to an input/output (I/O) bus 114. An I/O interface 116 is coupled to I/O bus 114. I/O interface 116 affords communication with various I/O devices, including a keyboard 118, a mouse 120, a media tray 122 (which may include storage devices such as CD-ROM drives, multi-media interfaces, etc.), a wireless signal receiver 124, and external USB port(s) 126. While the format of the ports connected to I/O interface 116 may be any known to those skilled in the art of computer architecture, in one embodiment some or all of these ports are universal serial bus (USB) ports.

As depicted, computer 102 is able to communicate with a software deploying server 150 using a network interface 130. Network 128 may be an external network such as the Internet, or an internal network such as an Ethernet or a virtual private network (VPN).

A hard drive interface 132 is also coupled to system bus 106. Hard drive interface 132 interfaces with a hard drive 134. In one embodiment, hard drive 134 populates a system memory 136, which is also coupled to system bus 106. System memory is defined as a lowest level of volatile memory in computer 102. This volatile memory includes additional higher levels of volatile memory (not shown), including, but not limited to, cache memory, registers and buffers. Data that populates system memory 136 includes computer 102's operating system (OS) 138 and application programs 144.

OS 138 includes a shell 140, for providing transparent user access to resources such as application programs 144. Generally, shell 140 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 140 executes commands that are entered into a command line user interface or from a file. Thus, shell 140, also called a command processor, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 142) for processing. Note that while shell 140 is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.

As depicted, OS 138 also includes kernel 142, which includes lower levels of functionality for OS 138, including providing essential services required by other parts of OS 138 and application programs 144, including memory management, process and task management, disk management, and mouse and keyboard management.

Application programs 144 include a renderer, shown in exemplary manner as a browser 146. Browser 146 includes program modules and instructions enabling a world wide web (WWW) client (i.e., computer 102) to send and receive network messages to the Internet using hypertext transfer protocol (HTTP) messaging, thus enabling communication with software deploying server 150 and other computer systems.

Application programs 144 in computer 102's system memory (and, in one embodiment, software deploying server 150's system memory) also include a mobility-impaired pedestrian route optimization program (MPROP) 148. MPROP 148 includes code for implementing the processes described below, including those described in FIGS. 2-4. In one embodiment, computer 102 is able to download MPROP 148 from software deploying server 150, including in an on-demand basis, wherein the code in MPROP 148 is not downloaded until needed for execution. Note further that, in one embodiment of the present invention, software deploying server 150 performs all of the functions associated with the present invention (including execution of MPROP 148), thus freeing computer 102 from having to use its own internal computing resources to execute MPROP 148.

The hardware elements depicted in computer 102 are not intended to be exhaustive, but rather are representative to highlight essential components required by the present invention. For instance, computer 102 may include alternate memory storage devices such as magnetic cassettes, digital versatile disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit and scope of the present invention.

With reference now to FIG. 2, an exemplary mobile assistance device (MAD) 200, to which a tracking device 252 (analogous to one of the tracking devices 152 depicted in FIG. 1) is affixed, is presented. MAD 200 is any assistance device used to aid a mobility-impaired pedestrian. As used herein, a mobility-impaired pedestrian is defined as a person who has a physical and/or emotional condition that limits his ability to be locomotive. Examples of such physical/emotional conditions include, but are not limited to, loss of or loss of use of one or more extremities, low vision or total blindness in one or both eyes, reduced hearing or total deafness in one or both ears, emotional issues such as anxiety or chronic disorientation that prevent traversal across certain routes due to environmental issues, stamina issues causes by decreased heart/lung capacity, etc. Examples of a MAD 200 include, but are not limited to, a wheelchair, crutches, a support cane, a “white” cane used by the blind, a cast worn by the pedestrian, etc. The tracking device 252, when used in conjunction with a location determining device such as the global positioning system (GPS) device 254 (analogous to one of GPS devices 154 shown in FIG. 1), is able to send out location signals to a wireless signal receiver 206 (e.g., the wireless signal receiver 124 shown in FIG. 1). These location signals may be remotely processed (e.g., by computer 102 shown in FIG. 1) or locally processed (e.g., by local processing system 202). In either embodiment, the tracking device 252 generates a plurality of mobile tracking readings that describe where (and optionally when) the MAD 200 has been. In one embodiment, the mobile tracking readings are transmitted every predetermined period of time (e.g., every 60 seconds). In another embodiment, the mobile tracking readings are transmitted continuously.

As depicted in FIG. 3, these mobile tracking readings are plotted on a map 300, which shows an origination point A (302), a destination point B (304), and pedestrian routes 306, 308, and 310 that are represented by the mobile tracking readings from the signals generated by the tracking device. Note that map 300 is a plot of multiple MAD 200s. Assume that the tracking device 252 in each of the multiple MAD 200s emits a location signal every 60 seconds. The high number of tracking points in pedestrian routes 308 and 310 indicate that these routes have a history of many MAD 200s following these routes, while the dearth of tracking points for pedestrian route 306 indicates that relatively few MAD 200s have taken this route, even though it is the shortest route between the origination point A and the destination point B. The present invention takes advantage of the historical trends shown to identify the optimal routes between point A and point B. That is, since map 300 shows that most mobility-impaired pedestrians (using MAD 200s) took pedestrian routes 308 or 310, then an assumption is made that these are the best routes for a current mobility-impaired pedestrian to take.

Note that pedestrian route 308 and pedestrian route 310 have a substantially similar number of tracking points. This similarity may be due to simple randomness, in which both routes are equally optimal (i.e., have the easiest sidewalks, pathways, fields, etc. to cross in a wheelchair or when on crutches), and past users have randomly chosen which route to take. In one embodiment, however, data analysis reveals that when it is snowing, raining, dark, etc., most mobility-impaired pedestrians will choose pedestrian route 308 (e.g., due to paved pathways, good lighting, etc.), but when the weather is clear during daytime hours, most mobility-impaired pedestrians will choose pedestrian route 310 (e.g., due to nicer scenery, proximity to popular coffee shops, etc.).

With reference now to FIG. 4, a high-level flow-chart of one or more actions performed by a processor to direct a mobility-impaired pedestrian to an optimal pedestrian route to a desired destination is presented. After initiator block 402, a processor receives a plurality of mobile tracking readings from each of multiple mobility assistance devices (block 404). That is, a computer system (such as computer 102 shown in FIG. 1) receives periodic or continuous tracking signals from the tracking device that is affixed to each mobility assistance device. This results in the identification of multiple pedestrian routes from a starting position to a desired destination (block 406), such as those depicted in FIG. 3. As described herein, these pedestrian routes are identified by the mobile tracking readings that have been generated in the past by tracking devices that are affixed to the mobility assistance devices (e.g., wheelchairs, crutches, canes, etc.). Note that in one embodiment, the tracking devices are simply worn or carried by mobility-impaired pedestrians. For example, the tracking devices may be incorporated into a smart phone being carried by mobility-impaired pedestrians, thus enabling the capture of preferred routes by pedestrians whose mobility-impairment is emotional rather than physical (and thus there is an absence of a mobility assistance device such as a wheelchair, cane, etc.). Note that in one embodiment, if tracking histories are skewed by large recurring events (such as athletic events), then any mobile tracking readings that were taken during these recurring public events (or even a single event that would skew the route history) will be eliminated from the mobile tracking readings, in order to provide a more accurate route usage history.

In one embodiment, the determination of the optimal pedestrian route may include locating and identifying an elevator, which if not on a route, will eliminate that route as a possible candidate for the optimal pedestrian route for a particular mobility-impaired pedestrian. For example, assume that a mobility-impaired pedestrian is in a wheelchair, and desires to get to the third floor of a parking facility. If there is no elevator in the parking facility, then that mobility-impaired pedestrian will be required to roll uphill on the parking facility ramps, which is may be physically exhausting, if not physically impossible, for that mobility-impaired pedestrian. In the present embodiment, an elevator is located by a processor (e.g., computer 102 in FIG. 1) detecting that a normally continuous signal from a tracking device goes silent at a same location along a pedestrian route (e.g., within the parking facility), and then reappears at a different altitude (i.e., a higher or lower floor), as indicated by an altimeter function in a GPS device associated with the tracking device. This pattern of loss of signal followed by a change in altitude indicates that past mobility-impaired pedestrians have used an elevator, in which GPS signals typically are blocked. Based on this historical pattern, the location of the elevator is determined and transmitted to the mobility-impaired pedestrian.

As described in block 408, an optimal pedestrian route is then identified for a current mobility-impaired pedestrian. The current mobility-impaired pedestrian is defined as a mobility-impaired pedestrian who is currently at an origination point A of the past pedestrian routes that have been identified, and who desires to travel to a destination point B on these past pedestrian routes. A preliminary determination is made that whichever route has been taken the most often in the past, as indicated by having more mobile tracking readings than other routes from the origination point A to the destination point B, is the optimal pedestrian route. Note that in one embodiment, a correlation is made between the mobility-impaired pedestrians whose tracking devices generated the route histories and the current mobility-impaired pedestrian. That is, the route taken most often in the past by persons with a same mobility-impairment as the current mobility-impaired pedestrian will be deemed the optimal route for that mobility-impaired pedestrian. Thus, a recommendation will be made to person in a wheelchair to follow the route most often taken by other wheelchair-using pedestrians, while a visually impaired pedestrian will be advised to follow the most popular route taken by other visually impaired pedestrians in the past (all as indicated by the tracking history generated by the tracking devices associated with the past pedestrians). Stated another way, a specific mobility-impairment affecting a specific type of user of one of the multiple mobility assistance devices that provided past mobile tracking readings is identified. A type-specific pedestrian route is then generated for mobility-impaired pedestrians having that same specific mobility-impairment. After a processor identifies which mobility-impairment affects the current mobility-impaired pedestrian, and then matches the mobility-impairment of the current mobility-impaired pedestrian to the specific mobility-impairment affecting the specific type of user of one of the multiple mobility assistance devices that provided past mobile tracking readings.

As indicated above, certain pedestrian routes are deemed optimal according to current conditions surrounding the current mobility-impaired pedestrian who is in need of route advice. For example, a route that was most popular, particularly with mobility-impaired pedestrians having a same mobility impairment as the current mobility-impaired pedestrian, during certain weather conditions, time of day or night, time of year, etc., will be recommended to the current mobility-impaired pedestrian. Similarly, if the current mobility-impaired pedestrian wants to get to a venue where a recurring public event is occurring (e.g., a college athletic game), whichever route was preferred in the past by those having his same mobility impairment will be recommended to that current mobility-impaired pedestrian.

As indicated in block 410 of FIG. 4, once the optimal pedestrian route is determined (based on the highest past usage) for the current mobility-impaired pedestrian, directions that describe this identified optimal pedestrian route are transmitted to the current mobility-impaired pedestrian (e.g., to his smart phone, personal digital assistant (PDA), etc.). The process ends at terminator block 412.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of various embodiments of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Note further that any methods described in the present disclosure may be implemented through the use of a VHDL (VHSIC Hardware Description Language) program and a VHDL chip. VHDL is an exemplary design-entry language for Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), and other similar electronic devices. Thus, any software-implemented method described herein may be emulated by a hardware-based VHDL program, which is then applied to a VHDL chip, such as a FPGA.

Having thus described embodiments of the invention of the present application in detail and by reference to illustrative embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims. 

What is claimed is:
 1. A processor-implemented method of guiding mobility-impaired pedestrians, the processor-implemented method comprising: a processor receiving a plurality of mobile tracking readings from each of multiple mobility assistance devices, wherein a tracking device is affixed to each of the multiple mobility assistance devices to generate the plurality of mobile tracking readings; the processor identifying a plurality of pedestrian routes taken by the multiple mobility assistance devices to a desired destination, wherein the plurality of pedestrian routes are identified by the plurality of mobile tracking readings generated by tracking devices affixed to the multiple mobility assistance devices; the processor identifying at least one optimal pedestrian route from the plurality of pedestrian routes, wherein said at least one optimal pedestrian route is identified as having more mobile tracking readings than any other pedestrian route from the plurality of pedestrian routes; and the processor transmitting directions that describe said at least one optimal pedestrian route, to the desired destination, to a current mobility-impaired pedestrian for traveling to a destination location.
 2. The processor-implemented method of claim 1, further comprising: the processor detecting a change in altitude location of at least one of the multiple mobility assistance devices after losing and then subsequently regaining a signal from the tracking device on said at least one of the multiple mobility assistance devices; the processor interpreting said change in altitude location after losing and then subsequently regaining said signal from the tracking device as being caused by said at least one of the multiple mobility assistance devices being transported in an elevator; and the processor transmitting a location of said elevator to said current mobility-impaired pedestrian.
 3. A computer program product for guiding mobility-impaired pedestrians, the computer program product comprising: a non-transitory computer readable storage media; first program instructions to receive a plurality of mobile tracking readings from each of multiple mobility assistance devices, wherein a tracking device is affixed to each of the multiple mobility assistance devices to generate the plurality of mobile tracking readings; second program instructions to identify a plurality of pedestrian routes taken by the multiple mobility assistance devices to a desired destination, wherein the plurality of pedestrian routes are identified by the plurality of mobile tracking readings generated by tracking devices affixed to the multiple mobility assistance devices; third program instructions to identify at least one optimal pedestrian route from the plurality of pedestrian routes, wherein said at least one optimal pedestrian route is identified as having more mobile tracking readings than any other pedestrian route from the plurality of pedestrian routes; and fourth program instructions to transmit directions that describe said at least one optimal pedestrian route, to the desired destination, to a current mobility-impaired pedestrian for traveling to a destination location; and wherein the first, second, third, and fourth program instructions are stored on the non-transitory computer readable storage media.
 4. The computer program product of claim 3, further comprising: fifth program instructions to detect a change in altitude location of at least one of the multiple mobility assistance devices after losing and then subsequently regaining a signal from the tracking device on said at least one of the multiple mobility assistance devices; sixth program instructions to interpret said change in altitude location after losing and then subsequently regaining said signal from the tracking device as being caused by said at least one of the multiple mobility assistance devices being transported in an elevator; and seventh program instructions to transmit a location of said elevator to said current mobility-impaired pedestrian; and wherein the fifth, sixth, and seventh program instructions are stored on the non-transitory computer readable storage media.
 5. A computer system comprising: a processor, a computer readable memory, and a non-transitory computer readable storage media; first program instructions to receive a plurality of mobile tracking readings from each of multiple mobility assistance devices, wherein a tracking device is affixed to each of the multiple mobility assistance devices to generate the plurality of mobile tracking readings; second program instructions to identify a plurality of pedestrian routes taken by the multiple mobility assistance devices to a desired destination, wherein the plurality of pedestrian routes are identified by the plurality of mobile tracking readings generated by tracking devices affixed to the multiple mobility assistance devices; third program instructions to identify at least one optimal pedestrian route from the plurality of pedestrian routes, wherein said at least one optimal pedestrian route is identified as having more mobile tracking readings than any other pedestrian route from the plurality of pedestrian routes; and fourth program instructions to transmit directions that describe said at least one optimal pedestrian route, to the desired destination, to a current mobility-impaired pedestrian for traveling to a destination location; and wherein the first, second, third, and fourth program instructions are stored on the non-transitory computer readable storage media for execution by the processor via the computer readable memory.
 6. The computer system of claim 5, further comprising: fifth program instructions to detect a change in altitude location of at least one of the multiple mobility assistance devices after losing and then subsequently regaining a signal from the tracking device on said at least one of the multiple mobility assistance devices; sixth program instructions to interpret said change in altitude location after losing and then subsequently regaining said signal from the tracking device as being caused by said at least one of the multiple mobility assistance devices being transported in an elevator; and seventh program instructions to transmit a location of said elevator to said current mobility-impaired pedestrian; and wherein the fifth, sixth, and seventh program instructions are stored on the non-transitory computer readable storage media for execution by the processor via the computer readable memory. 